#ifndef CLIENT_H
#define CLIENT_H
#include "my_header.h"

// 命令类型枚举
enum cmd_type{
    REGISTER,
    LOGIN,
    LS,
    CD,
    PWD,
    REMOVE,
    MKDIR,
    PUTS,
    GETS,
    RMDIR,
    OTHER,
};

// 小火车
typedef struct train_s{
 int type;
 int length;
 char data[4096];
}train_t;

// 发给子线程的结构体
typedef struct threadMsg_s{
    int fd;
    char path[100];
    char ip[20];
    char port[10];
    train_t train;
}threadMsg_t;

int sendMsg(int sockfd,char *buf);
int recvMsg(int sockfd,char *buf);
int recvn(int sockfd,void *buf,int n);
int recvFile(int sockfd,char* realname);
int sendFile(int sockfd,char *fileName);
int formVertify(const char *buf);//验证命令格式的头文件

// 登录和注册函数
int uRegister(int sockfd,char *uPass);
int uLogin(int sockfd, char *uName,char *uPass);

// 哈希函数
int sha1_file(const char *filename, char *sha1str);

#endif
